package com.sxbbc.common.core.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.function.common.RestResponse;
import com.sxbbc.common.core.entity.jz.ProcFirstClassifyMain;
import com.sxbbc.common.core.entity.jz.ProcFirstClassifyShop;
import com.sxbbc.common.core.entity.jz.ProcThirdClassifyMain;
import java.util.List;

/**
 * @author leehao
 * @description 分类业务层 避免一二三级分类在不通service层查询
 * @date 2019-04-30 15:31
 */
public interface ProcClassifyMainService {
    List<ProcFirstClassifyMain> queryClassifyList(QueryWrapper<ProcFirstClassifyMain> wrapper);

    /**
     * 删除分类 假删除
     * @param id 分类id
     * @param level 层级
     *              1 一级分类
     *              2 二级分类
     *              3 三级分类
     * @author leehao
     * @return com.function.common.RestResponse
     */
    RestResponse deleteClassCategory(Integer id, Integer level);

    /**
     * 查询分类下是否含有数据
     * @param id 分类id
     * @param level 分类层级 一二三级
     * @author leehao
     * @return 含有返回true，反之false
     */
    boolean queryClassifyByPid(Integer id, Integer level);

    /**
     * 动态查询产品分类 (该方法经迭代后只能查询平台分类)
     * @param pid 父id
     * @param type 分类
     * @param targetId 目标id
     * @param flag 菜单标记
     *             1一级菜单;2二级菜单;3三级菜单
     * @author leehao
     * @return java.util.List<?>
     */
    List<?> queryClassifyListAjax(Integer pid,Integer type,Integer targetId,Integer flag);

    /**
     * 查询平台的分类
     * @param thirdClassifyMain
     * @author leehao
     * @return 分类list对象
     */
    List<?> queryClassifyListByPlat(ProcThirdClassifyMain thirdClassifyMain);

    /**
     * 新增分类
     * @param main 分类对象
     * @author leehao
     * @return com.function.common.RestResponse
     */
    RestResponse addClassify(ProcThirdClassifyMain main);

    /**
     * 查询商家一级分类
     */
    List<ProcFirstClassifyShop> queryBusinessFirstClassifyList(Integer bid);
}
